Ext.onReady(function(){ Ext.Direct.addProvider( Ext.app.REMOTING_API, { type:'polling', url: 'php/poll.php' } ); var out = new Ext.form.DisplayField({ cls: 'x-form-text', id: 'out' }); var text = new Ext.form.TextField({ width: 300, emptyText: 'Echo input' }); var call = new Ext.Button({ text: 'Echo', handler: function(){ TestAction.doEcho(text.getValue(), function(result, e){ var t = e.getTransaction(); out.append(String.format('Successful call to {0}.{1} with response:
{2} ', t.action, t.method, Ext.encode(result))); out.el.scroll('b', 100000, true); }); } }); var num = new Ext.form.TextField({ width: 80, emptyText: 'Multiply x 8', style: 'text-align:left;' }); var multiply = new Ext.Button({ text: 'Multiply', handler: function(){ TestAction.multiply(num.getValue(), function(result, e){ var t = e.getTransaction(); if(e.status){ out.append(String.format('Successful call to {0}.{1} with response:
{2} ', t.action, t.method, Ext.encode(result))); }else{ out.append(String.format('Call to {0}.{1} failed with message:
{2} ', t.action, t.method, e.message)); } out.el.scroll('b', 100000, true); }); } }); text.on('specialkey', function(t, e){ if(e.getKey() == e.ENTER){ call.handler(); } }); num.on('specialkey', function(t, e){ if(e.getKey() == e.ENTER){ multiply.handler(); } }); var p = new Ext.Panel({ title: 'Remote Call Log', //frame:true, width: 600, height: 300, layout:'fit', items: [out], bbar: [text, call, '-', num, multiply] }).render(Ext.getBody()); Ext.Direct.on('message', function(e){ out.append(String.format('{0}
', e.data)); out.el.scroll('b', 100000, true); }); });